; Music of Tetris 2 (1991) (Abacus)
; Ripped by Megachur the 07/03/2009

; Need System Vectors

	write "TETRIS2.BIN"

music_date_rip	equ &0739
music_adr	equ &9bf3
first_theme	equ 1
last_theme	equ 2	; 1 -> 2

	read "music_header_v1_0.asm"

.l9bf3
	db &00
.l9bf4
	db &00

;
.init_music
;
	and a
	jr z,l9c65
	cp #03
	jp z,l9ecb
	dec a
	ld b,#00
	ld c,a
	sla c
	sla c
	sla c
	ld ix,l9e58
	ld b,#00
	add ix,bc
	ld l,(ix+#00)
	ld h,(ix+#01)
	ld (l9dce),hl
	ld (l9dd0),hl
	ld l,(ix+#02)
	ld h,(ix+#03)
	ld (l9dbe),hl
	ld (l9dc0),hl
	ld l,(ix+#04)
	ld h,(ix+#05)
	ld (l9dae),hl
	ld (l9db0),hl
	xor a
	ld (l9dad),a
	ld (l9db3),a
	ld (l9bf3),a
	ld (l9dbd),a
	ld (l9dc3),a
	ld (l9dcd),a
	ld (l9dd3),a
	inc a
	ld (l9bf4),a
	ld (l9db2),a
	ld (l9dc2),a
	ld (l9dd2),a
	call #bca7
	ld hl,l9dd4
	ld bc,#8100
	ld de,l9c75
	jp #bcd7
.l9c65
	xor a
	ld (l9bf4),a
	ld hl,l9dd4
	call #bcdd
	call #bca7
	jp l9e93
;
.play_music
.l9c75
;
	push af
	push iy
	xor a
	ld (l9e57),a
	ld a,(l9bf3)
	cp #00
	jr z,l9c8a
	dec a
	ld (l9bf3),a
	ld (l9e57),a
.l9c8a
	ld a,(l9db2)
	dec a
	ld (l9db2),a
	ld iy,l9da4
	call z,l9cbc
	xor a
	ld (l9e57),a
	ld a,(l9dc2)
	dec a
	ld (l9dc2),a
	ld iy,l9db4
	call z,l9cbc
	ld a,(l9dd2)
	dec a
	ld (l9dd2),a
	ld iy,l9dc4
	call z,l9cbc
	pop iy
	pop af
	ret
.l9cbc
	push bc
	push de
	push hl
	push ix
.l9cc1
	ld l,(iy+#0c)
	ld h,(iy+#0d)
	push hl
	pop ix
.l9cca
	ld a,(ix+#00)
	cp #ff
	jp z,l9d42
	cp #fe
	jp z,l9d5a
	cp #fd
	jp z,l9d6a
	cp #fc
	jp z,l9d62
	cp #fb
	jp z,l9d51
	cp #fa
	jp z,l9d72
	cp #7f
	jp nc,l9d7a
	ld hl,l9ddd
	ld a,(ix+#00)
	sla a
	ld b,#00
	ld c,a
	add hl,bc
	ld a,(hl)
	ld (iy+#03),a
	inc hl
	ld a,(hl)
	ld (iy+#04),a
	ld a,(ix+#01)
	ld (iy+#0e),a
	ld l,(iy+#0c)
	ld h,(iy+#0d)
	inc hl
	inc hl
	ld (iy+#0c),l
	ld (iy+#0d),h
	push iy
	pop hl
	ld a,(l9e57)
	cp #00
	call z,#bcaa
	pop ix
	pop hl
	pop de
	pop bc
	ret
	xor a
	ld (iy+#09),a
.l9d2e
	ld l,(iy+#0c)
	ld h,(iy+#0d)
	inc hl
	inc hl
	inc ix
	inc ix
	ld (iy+#0c),l
	ld (iy+#0d),h
	jr l9cca
.l9d42
	ld a,(iy+#0a)
	ld (iy+#0c),a
	ld a,(iy+#0b)
	ld (iy+#0d),a
	jp l9cc1
.l9d51
	ld a,(ix+#01)
	ld (iy+#05),a
	jp l9d2e
.l9d5a
	ld a,(ix+#01)
	ld (iy+#01),a
	jr l9d2e
.l9d62
	ld a,(ix+#01)
	ld (iy+#02),a
	jr l9d2e
.l9d6a
	ld a,(ix+#01)
	ld (iy+#06),a
	jr l9d2e
.l9d72
	pop ix
	pop hl
	pop de
	pop bc
	jp l9c65
.l9d7a
	ld b,a
	ld a,(iy+#09)
	cp #00
	jr nz,l9d85
	ld a,b
	sub #7f
.l9d85
	dec a
	ld (iy+#09),a
	cp #00
	jr z,l9d2e
	ld a,(ix+#01)
	sla a
	ld b,#00
	ld c,a
	and a
	push ix
	pop hl
	sbc hl,bc
	ld (iy+#0c),l
	ld (iy+#0d),h
	jp l9cc1
.l9da4
	db #81,#00,#00,#00,#00,#00,#ff,#00
.l9db3 equ $ + 7
.l9db2 equ $ + 6
.l9db0 equ $ + 4
.l9dae equ $ + 2
.l9dad equ $ + 1
	db #00,#00,#00,#00,#00,#00,#02,#00
.l9db4
	db #82,#00,#00,#00,#00,#00,#ff,#00
.l9dc3 equ $ + 7
.l9dc2 equ $ + 6
.l9dc0 equ $ + 4
.l9dbe equ $ + 2
.l9dbd equ $ + 1
	db #00,#00,#00,#00,#00,#00,#02,#00
.l9dc4
	db #84,#00,#00,#00,#00,#00,#ff,#00
.l9dd3 equ $ + 7
.l9dd2 equ $ + 6
.l9dd0 equ $ + 4
.l9dce equ $ + 2
.l9dcd equ $ + 1
	db #00,#00,#00,#00,#00,#00,#02,#00
.l9dd4
	db #00,#02,#00,#03
.l9ddd equ $ + 5
	dw #0324,#02f6,#bccc,#8603
	dw #5303,#2403,#f603,#cc02
	dw #a402,#7e02,#5a02,#3802
	dw #1802,#fa02,#de01,#c301
	dw #aa01,#9201,#7b01,#6601
	dw #5201,#3f01,#2d01,#1c01
	dw #0c01,#fd01,#ef00,#e100
	dw #d500,#c900,#be00,#b300
	dw #a900,#9f00,#9600,#8e00
	dw #8600,#7f00,#7700,#7100
	dw #6a00,#6400,#5f00,#5900
	dw #5400,#5000,#4b00,#4700
	dw #4300,#3f00,#3c00,#3800
	dw #3500,#3200,#2f00,#2d00
	dw #2a00,#2800,#2600,#2400
	dw #2200,#2000,#0000:db #00
.l9e57
	db #00
.l9e58
	dw l9ed6,l9ef3,l9f3e,#0000
	dw l9fc5,la072,la139,#0000
.l9e6c equ $ + 4
.l9e68
	db #01,#0f,#ff,#01,#01,#0f,#ff,#02
.l9e74 equ $ + 4
.l9e70
	db #01,#0f,#ff,#04,#02,#05,#01,#01
.l9e7b equ $ + 3
	db #0f,#ff,#08,#02,#05,#ff,#03,#0a
.l9e86 equ $ + 6
.l9e82 equ $ + 2
	db #ff,#03,#01,#0f,#ff,#0c,#01,#0f
.l9e8a equ $ + 2
	db #ff,#04,#81,#06,#00,#77,#00,#00
	db #0f,#ff,#ff
.l9e93
	ld hl,l9e68
	ld a,#01
	call #bcbc
	ld hl,l9e6c
	ld a,#02
	call #bcbc
	ld hl,l9e70
	ld a,#03
	call #bcbc
	ld hl,l9e74
	ld a,#04
	call #bcbc
	ld hl,l9e7b
	ld a,#05
	call #bcbc
	ld hl,l9e82
	ld a,#06
	call #bcbc
	ld hl,l9e86
	ld a,#07
	jp #bcbc
.l9ecb
	ld a,#32
	ld (l9bf3),a
	ld hl,l9e8a
	jp #bcaa
.l9ed6
	db #fc,#00,#fb,#00,#fd,#0f,#fe,#01
	db #21,#08,#21,#08,#2d,#04,#2d,#04
	db #21,#08,#21,#08,#2d,#08,#21,#08
.l9ef3 equ $ + 5
	db #2d,#08,#95,#09,#ff,#fe,#00,#fd
	db #00,#00,#40,#00,#40,#fc,#00,#fb
	db #00,#fd,#0f,#fe,#05,#15,#08,#15
	db #08,#18,#08,#15,#10,#15,#08,#18
	db #08,#15,#08,#13,#08,#13,#08,#17
	db #08,#13,#10,#13,#08,#17,#08,#13
	db #08,#11,#08,#11,#08,#15,#08,#11
	db #10,#11,#08,#15,#08,#11,#08,#13
	db #08,#13,#08,#17,#08,#13,#10,#13
	db #08,#17,#08,#13,#08,#84,#1c,#ff
.l9f3e
	db #fe,#00,#fd,#00,#00,#40,#85,#01
	db #fc,#00,#fb,#00,#fd,#0a,#fe,#04
	db #21,#28,#21,#08,#24,#08,#26,#08
	db #21,#28,#21,#08,#24,#08,#26,#08
	db #21,#28,#21,#08,#24,#08,#26,#08
	db #28,#10,#26,#10,#24,#10,#26,#10
	db #21,#28,#21,#08,#24,#08,#26,#08
	db #21,#28,#21,#08,#24,#08,#26,#08
	db #21,#28,#21,#08,#24,#08,#26,#08
	db #28,#10,#26,#10,#24,#10,#26,#10
	db #21,#20,#24,#08,#21,#08,#24,#08
	db #28,#48,#21,#20,#24,#08,#21,#08
	db #24,#08,#28,#18,#26,#10,#24,#10
	db #26,#10,#21,#20,#24,#08,#21,#08
	db #24,#08,#28,#48,#21,#20,#24,#08
	db #21,#08,#24,#08,#28,#10,#28,#08
.l9fc5 equ $ + 7
	db #26,#10,#24,#10,#26,#10,#ff,#fb
	db #00,#fc,#00,#fd,#0d,#fe,#03,#09
	db #06,#09,#06,#10,#06,#10,#06,#0c
	db #06,#0c,#06,#0e,#06,#0e,#06,#8d
	db #08,#00,#06,#00,#06,#13,#06,#13
	db #06,#10,#06,#10,#06,#11,#06,#11
	db #06,#85,#08,#09,#06,#09,#06,#10
	db #06,#10,#06,#0c,#06,#0c,#06,#0e
	db #06,#0e,#06,#8f,#08,#00,#06,#00
	db #06,#13,#06,#13,#06,#10,#06,#10
	db #06,#11,#06,#11,#06,#83,#08,#09
	db #06,#09,#06,#10,#06,#10,#06,#0c
	db #06,#0c,#06,#0e,#06,#0e,#06,#97
	db #08,#fc,#00,#fb,#00,#fd,#0f,#fe
	db #02,#05,#06,#05,#06,#11,#06,#05
	db #06,#05,#06,#11,#06,#05,#06,#11
	db #06,#07,#06,#07,#06,#13,#06,#07
	db #06,#07,#06,#13,#06,#07,#06,#13
	db #06,#09,#06,#09,#06,#15,#06,#09
	db #06,#09,#06,#15,#06,#09,#06,#15
	db #06,#09,#06,#09,#06,#15,#06,#09
	db #06,#09,#06,#15,#06,#09,#06,#15
.la072 equ $ + 4
	db #06,#87,#20,#ff,#fb,#00,#fc,#00
	db #fd,#00,#fe,#00,#00,#60,#fd,#0f
	db #fe,#02,#09,#0c,#15,#0c,#09,#06
	db #15,#06,#0c,#06,#18,#06,#0e,#0c
	db #1a,#0c,#10,#0c,#1c,#0c,#85,#0a
	db #0c,#0c,#18,#0c,#0c,#06,#18,#06
	db #10,#06,#1c,#06,#11,#0c,#1d,#0c
	db #13,#0c,#1f,#0c,#82,#0a,#09,#0c
	db #15,#0c,#09,#06,#15,#06,#0c,#06
	db #18,#06,#0e,#0c,#1a,#0c,#10,#0c
	db #1c,#0c,#87,#0a,#0c,#0c,#18,#0c
	db #0c,#06,#18,#06,#10,#06,#1c,#06
	db #11,#0c,#1d,#0c,#13,#0c,#1f,#0c
	db #81,#0a,#09,#0c,#15,#0c,#09,#06
	db #15,#06,#0c,#06,#18,#06,#0e,#0c
	db #1a,#0c,#10,#0c,#1c,#0c,#8b,#0a
	db #fc,#01,#fb,#00,#fd,#0f,#fe,#02
	db #05,#06,#05,#06,#05,#06,#05,#06
	db #05,#06,#05,#06,#05,#06,#05,#06
	db #07,#06,#07,#06,#07,#06,#07,#06
	db #07,#06,#07,#06,#07,#06,#07,#06
	db #09,#06,#09,#06,#09,#06,#09,#06
	db #09,#06,#09,#06,#09,#06,#09,#06
	db #09,#06,#09,#06,#09,#06,#09,#06
	db #09,#06,#09,#06,#09,#06,#09,#06
.la139 equ $ + 3
	db #87,#20,#ff,#fb,#00,#fc,#00,#fd
	db #00,#fe,#00,#00,#60,#00,#60,#00
	db #6c,#fd,#0f,#fe,#03,#28,#0c,#28
	db #0c,#29,#06,#28,#1e,#26,#0c,#24
	db #0c,#28,#0c,#81,#07,#1c,#0c,#21
	db #06,#21,#06,#1c,#06,#21,#0c,#21
	db #0c,#21,#0c,#21,#06,#21,#18,#81
	db #09,#1f,#0c,#24,#06,#24,#06,#1f
	db #06,#24,#0c,#24,#0c,#24,#0c,#24
	db #06,#24,#18,#1f,#0c,#24,#06,#24
	db #06,#1f,#06,#24,#0c,#24,#0c,#24
	db #0c,#24,#06,#24,#6c,#21,#06,#21
	db #06,#21,#06,#24,#0c,#24,#06,#23
	db #0c,#21,#06,#21,#06,#21,#06,#24
	db #0c,#24,#06,#23,#06,#21,#06,#81
	db #0d,#23,#06,#23,#06,#23,#06,#26
	db #0c,#26,#06,#24,#0c,#23,#06,#23
	db #06,#23,#06,#26,#0c,#26,#06,#24
	db #06,#23,#06,#21,#06,#21,#06,#21
	db #06,#24,#0c,#24,#06,#23,#0c,#21
	db #06,#21,#06,#21,#06,#24,#0c,#24
	db #06,#23,#06,#21,#06,#21,#06,#21
	db #0c,#21,#06,#28,#0c,#28,#06,#24
	db #0c,#24,#06,#24,#0c,#26,#0c,#24
	db #0c,#21,#06,#21,#06,#21,#06,#21
	db #06,#28,#0c,#28,#06,#24,#0c,#24
	db #06,#24,#06,#24,#06,#26,#0c,#24
	db #0c,#81,#16,#24,#06,#24,#0c,#24
	db #06,#2b,#0c,#2b,#06,#28,#0c,#28
	db #06,#28,#0c,#29,#0c,#28,#0c,#24
	db #06,#24,#06,#24,#06,#24,#06,#2b
	db #0c,#2b,#06,#28,#0c,#28,#06,#28
	db #06,#28,#06,#29,#0c,#28,#0c,#21
	db #18,#21,#0c,#24,#06,#28,#1e,#26
	db #0c,#28,#0c,#21,#0c,#21,#0c,#21
	db #0c,#24,#06,#28,#36,#81,#0b,#fd
	db #00,#fe,#00,#00,#6c,#fd,#0f,#fe
	db #03,#28,#0c,#28,#0c,#29,#06,#28
	db #1e,#26,#0c,#24,#0c,#28,#0c,#83
	db #07,#1c,#0c,#21,#06,#21,#06,#1c
	db #06,#21,#0c,#21,#0c,#21,#0c,#21
	db #06,#21,#18,#1c,#0c,#21,#06,#21
	db #06,#1c,#06,#21,#0c,#21,#0c,#21
	db #0c,#21,#06,#21,#6c,#fe,#00,#fd
	db #00,#00,#60,#00,#60,#fc,#00,#fb
	db #00,#fd,#0f,#fe,#03,#11,#06,#1d
	db #06,#83,#02,#13,#06,#1f,#06,#83
	db #02,#15,#06,#21,#06,#15,#06,#21
	db #06,#83,#04,#1d,#06,#1d,#06,#1d
	db #06,#24,#06,#81,#04,#1f,#06,#1f
	db #06,#1f,#06,#26,#06,#81,#04,#21
	db #06,#21,#06,#21,#06,#28,#06,#83
	db #04,#11,#06,#11,#06,#1d,#06,#11
	db #06,#11,#06,#11,#06,#1d,#0c,#13
	db #06,#13,#06,#1f,#06,#13,#06,#13
	db #06,#13,#06,#1f,#0c,#15,#06,#15
	db #06,#21,#06,#15,#06,#15,#06,#15
	db #06,#21,#0c,#15,#06,#15,#06,#21
	db #06,#15,#06,#15,#06,#15,#06,#21
	db #0c,#fe,#00,#fd,#00,#00,#60,#00
	db #60,#fe,#03,#fd,#0f,#21,#06,#21
	db #06,#21,#06,#24,#0c,#24,#06,#23
	db #0c,#21,#06,#21,#0c,#24,#0c,#24
	db #06,#23,#06,#23,#06,#81,#0c,#21
	db #06,#21,#06,#21,#06,#24,#06,#24
	db #06,#24,#06,#23,#0c,#23,#06,#23
	db #06,#23,#06,#26,#0c,#24,#06,#21
	db #0c,#81,#0d,#fe,#00,#fd,#00,#00
	db #60,#00,#60,#ff,#00,#00
;
.game_name
	db "Tetris 2",0
.game_year
	db "1991",0
.game_publisher
	db "Abacus",0
.music_author
	db "",0
.music_comment
	db "",0

	read "music_end_v1_0.asm"
